﻿CREATE PROCEDURE [dbo].[TempArticles_ConcatenateUomAndCodeForRepeatedNames]
	
AS
declare @Name varchar(200);
declare @UOM varchar(50);

declare @PrevName varchar(200) = '';
declare @PrevUOM varchar(50) = '';

Declare c Cursor For 
					select Name, UOM 
					from TempArticles
					where
					Name in 
					( 
						select Name
						from TempArticles
						group by Name
						having COUNT(Name) > 1 
					)
					 order by Name, UOM

Open c

Fetch next From c into @Name, @UOM

While @@Fetch_Status=0 
 Begin
	
	if @PrevName = @Name
	begin
		if @PrevUOM <> @UOM -- Si encuento algun caso con mismo nombre y distinta UOM
		begin
			--Actualizo los articulos con el nuevo codigo (UOM + codigo)
			update TempArticles
			set Code = Code + UOM
			where Name = @Name

			--Genero el audit trail del cambio
			insert into AuditTrails (ErrorType, Source, Date, Comments)
			values ('Cambio de Código', 'Importador', GetDate(), 'A todos los Articulos ' + @Name + ' se les cambio el código por la concatenación de su código original + su unidad de medida')
			
			--Actualizo las ventas con el nuevo codigo (UOM + codigo)
			update TempArticleSales
			set ArticleCode = ArticleCode + UOM
			where ArticleName = @Name
		end
	end
	
	set @PrevName = @Name;	   	
	set @PrevUOM = @UOM;
   
    Fetch next From c into @Name, @UOM
 End

Close c
Deallocate c
RETURN 0